The present invention relates to computer networks and, more particularly, to computer networks incorporating network switches.
A major objective of the invention is to provide a high-performance network that can be initiated economically on a small scale and then expanded as needed.
Much of modern progress is marked by the proliferation of computers, and with their proliferation has come the need for computers to communicate with each other. Computer networks link computers and peripherals to facilitate their mutual communication. As the number of computers and peripherals increases, networks must expand. Simple peer-to-peer networks are superceded by networks that use network-specific devices (e.g., hubs, switches, routers) to forward data packets (frames) from one node device (e.g., computer, peripheral) to another.
The simplest network-specific device is a repeater, which regenerates a received signal to compensate for signal degradation over distances. A hub is a multi-port repeater, transmitting a received signal out all ports other than the one at which it was received. A hub can accommodate as many node devices (e.g., computers, printers) as it has ports. To accommodate greater numbers of devices, multiple hubs can be used and linked to each other. However, since each hub is broadcasting every received signal, the burden on network bandwidth can be significant.
Switches (including 2-port switches called xe2x80x9cbridgesxe2x80x9d) selectively retransmit received data, thereby reducing the bandwidth burden relative to hubs. Each port of a switch can be coupled a network segment. A xe2x80x9cnetwork segmentxe2x80x9d is a portion of network in which all transmissions are receivable by all included node devices, as well as any interconnecting hubs.
The operation of a typical switch conforms to an IEEE 802 standard, according to which switches handle xe2x80x9clayer 2xe2x80x9d packets. Each layer 2 packet consists of a 48-bit destination xe2x80x9cmedia access controlxe2x80x9d (MAC) address, a 48-bit source MAC address, control information, and data. The source and destination addresses identify network devices. Switches selectively forward packets by analyzing the destination address, and switches learn the location of network devices by examining the source address. The learning function is defined by IEEE Standard 802.1D.
A switch conforming to the IEEE 802.1D learning bridge standard checks its forwarding database to determine if the destination address of a packet has been mapped to a port of the switch. The forwarding database includes mappings between the source addresses of packets previously received and the ports at which those packets were respectively received. If the destination address has been mapped, the packet is forwarded out the port associated with the destination address. If the destination address has not been mapped to a port, the packet is flooded, i.e., transmitted out all ports other than the one at which the packet was received, so that it reaches all possible network destinations.
If a network expands to the point where the required number of ports exceeds those available, there are three possibilities. The first is to replace the switch with a switch with more ports. The second is to increase the number of ports in a switch. The third is to add additional switches to the network. The first solution, replacement, is obviously wasteful.
The second solution, adding ports, only applies to certain expandable switches that involve a relatively high expense per port in the minimal configurations that might be preferred at the early stages of a network""s growth. For example, a network chassis might include a backplane on which slots are mounted for several switch cards. Each switch card might have four ports. Buying an initial four-port chassis-based switch can be expensive because the chassis and backplane are included. The additional port cards tend to be proprietary, and therefore more expensive than their manufacturing costs would imply.
The third solution, adding switches, is economically attractive in that the number of ports can be scaled almost linearly with the number of switches. For example, two twelve-port switches can provide up to twenty-two ports for network segments, with one port on each switch being used for communicating with the other switch. An additional advantage of adding switches to a network rather than adding ports to a switch is that the maximum distance between network segments increases. For example, if the maximum recommended cable length is 100 meters, then in a one-switch network, network segments can be at most 200 meters apart. In a two-switch network, this limit is raised to 300 meters.
Communication bandwidth is an issue when multiple switches are used. In a chassis-type switch, a common backplane provides for intercard communication. The bandwidth provided by the backplane can be readily designed to handle the maximum load provided by a full set of network cards. However, where a single network cable couples separate switches, that cable""s bandwidth can be exceeded easily. In an extreme example using two 12-port switches, eleven pairs of network nodes could compete for bandwidth over a single cable connecting the two switches. xe2x80x9cTrunkingxe2x80x9d is an approach to increasing inter-switch bandwidth that involves using more than one pair of ports for inter-switch communication. In related-art FIG. 1, three ports PA1, PA2, and PA3 of one switch SWA can be respectively coupled to three ports PB1, PB2, PB3 of another switch SWB to define a trunk TRK and triple the available inter-switch bandwidth. The remaining ports PA4, PA5, PA6, PB4, PB5, PB6 can be coupled to other unique network segments.
For trunking to work, normal switch operation must be modified. Accordingly, proposed IEEE standard 802.3 defines a special xe2x80x9ctrunk modexe2x80x9d. In the foregoing example, xe2x80x9cphysicalxe2x80x9d ports PA1, PA2, and PA3 collectively define a xe2x80x9clogicalxe2x80x9d trunk TPA; likewise, physical ports PB1, PB2, and PB3 collectively define a logical trunk TPB.
When a packet with an unknown destination is received by switch SWA, flooding it out all physical xe2x80x9ctrunkedxe2x80x9d ports PA1, PA2, PA3 of its trunk TPA would cause switch SWB at the other end of the trunk to receive the packet on all its trunked ports PB1, PB2, PB3. If it responded in a like manner, switch SWB would flood multiple replicas of the packet back to switch SWA, which would flood packets again to switch SWB. Thus, a network loop would be formed, tying up network bandwidth unless and until some network fault handling procedure intervened. Furthermore, the redundant transmission would offset some of the additional bandwidth that trunking is intended to provide. Accordingly, trunk mode includes a xe2x80x9cflood-reductionxe2x80x9d procedure to ensure no packet is flooded out more than one physical port of a trunk.
In addition, the proposed IEEE standard 802.3 provides for a load-balancing procedure. The theoretical limit of bandwidth that increases linearly with the number of trunk lines can only be approached if the communications load is evenly distributed among the trunk lines. To help ensure even distribution, the normal learning procedure of mapping unknown source addresses to the trunked port at which a packet is received is replaced in trunk mode by a xe2x80x9ctrunk-load-balancingxe2x80x9d procedure. For example, unknown source addresses can be mapped to trunked ports in a round-robin manner; thus, when a packet with an unknown source address is received at a trunk port, the source address may be mapped to the physical port at which the packet was received, but it may also be mapped to one of the other physical ports in the trunk. (A switch in trunk mode maps an unknown source address received at a non-trunk port to that port, just as it would in normal mode.) Alternatives to the round-robin procedure include random port selection and load-based port selection.
The main cost of trunking is the loss of ports for connecting segments. For example, two 12-port switches with a three-line trunk have 18 lines for coupling network segments, as opposed to 22 for switches coupled by one line. However, in principle, the objective of a scalable network using standard switches while maintaining satisfactory inter-switch bandwidth is achieved.
While trunking ameliorates the bandwidth issue, other issues, such as latency and vulnerablility to faults, remain. If switches added to increase port count (as in the third solution described above) are arranged in series, some data packets may have to traverse every switch in the series to reach their destinations. Each switch introduces a delay (latency) in the traversal. If the accumulated latency exceeds network specifications, network errors can be introduced that impair and/or disrupt network activity. Furthermore, if a switch near the middle of the series fails, a large percentage of network communications pathways will be broken.
The maximum number of switches that must be traversed for a given number of switches can be reduced by using network topologies other than serial topologies. In a star topology, for example, outer switches can be coupled to each other through a central switch. However, the number of outer switches that can be accommodated by a central switch decreases in inverse proportion to the degree of trunking, and the port count available for connecting network segments is reduced by even more.
For example, using all 12-port switches without trunking, twelve outer switches with eleven ports each available for connecting network segments allow up to 132 network segments to be connected. If two-line trunks are provided for each inter-switch connection, a maximum of six outer switches with ten available ports permits a maximum of 60 network segments to be interconnected. Also, in the star topology, if the central switch fails, there will be no inter-switch communication. Generally, each topology must be evaluated for port utilization, bandwidth, vulnerability to switch failure, complexity (that might lead to accidental loop formation), and other factors.
What is needed is an approach to networks that allows a modest cost for installations that are initially small, but allow cost-effective expansion as the network grows. As the network grows, appropriate inter-switch bandwidth must be maintained, latencies kept within network specifications, a large maximum distance between nodes should be achieved, and a reasonable level of fault tolerance should be provided.
The present invention provides a xe2x80x9cvirtual-chassisxe2x80x9d topology that can accommodate a wide range of network requirements. The topology includes multiple xe2x80x9cvirtual front-planexe2x80x9d switches to which network segments are coupled, and plural xe2x80x9cvirtual back-planexe2x80x9d switches, each of which interconnects all the front-plane switches. Each front-plane switch is coupled to all of the back-plane switches. The ports of each front-plane switch that are coupled to back-plane switches are operated in trunk mode. Whereas the related art described in the background section above concerned xe2x80x9csymmetricxe2x80x9d trunking, the present invention provides for asymmetric trunking in that the back-plane ports are not trunked, or at least are not trunked to the same degree as the front-plane switches.
The present invention provides for certain xe2x80x9cswitch-specificxe2x80x9d protocol packets that are not subject to the trunk-load-balancing procedure and the trunk-flood-reduction procedure. Such protocol packets can be identified, for example, by their inclusion of a switch specific destination address (so that they are read and not forwarded by the receiving switch).
The switch-specific protocol packets can include xe2x80x9cswitch-to-switchxe2x80x9d protocol packets that have the MAC address of the originating switch port as its source address. A xe2x80x9cswitch-identificationxe2x80x9d packet is a type of switch-to-switch protocol packet in which the data to be read by a receiving switch specifies an internet protocol (IP) address for the source switch and identifies the source as a virtual-chassis compatible switch. If such a switch-to-switch protocol packet with an unknown source address is received at a trunk port, (typically, it is a front-plane switch receiving a protocol packet from an originating back-plane switch), the source address is mapped to the receiving port (not according to the trunk-load-balancing procedure, but as it would be in normal mode). Thus, for example, a network administration station trying to access a back-plane switch will succeed as a matter of course.
xe2x80x9cDatabase-concordancexe2x80x9d packets constitute another class of switch specific packets that are used to ensure concordance of the forwarding databases of the back-plane switches. When a front-plane switch, in response to reception of a packet with an unknown source address at a non-trunk port, updates its forwarding database, it can generate a database-concordance packet that replicates the source address of the received packet, but replaces the original destination address with a switch-specific destination address.
The database-concordance packet can be flooded out all the physical ports of a trunk, with the optional exclusion of the physical port through which the original packet was received. (This flooding out trunk ports can be considered an exception to the trunk-flood-reduction procedure.) Thus, every source address learned by any back-plane switch is learned by all the back-plane switches. As an enhancement, database concordance packets can be generated when a mapping is removed from a (front-plane) forwarding database (for example, due to aging).
The present invention provides for a xe2x80x9cdatabase-migrationxe2x80x9d packet, a specific type of switch-to-switch protocol packet, to be generated by a back-plane switch in response to a detection of a broken link at one of its ports. Such a broken link can be detected by a nonconformance to a (hardware) layer 1 protocol. In response to such a detection, a back-plane switch can generate and flood out all of its ports one or more database migration packets. Each database migration packet specifies a switch-specific destination address and lists addresses mapped to the port at the broken link. A front-plane switch receiving such a packet can then update its forwarding database so that none of the listed addresses are mapped to the physical trunk port connected to the originating back-plane switch. This migration effects a xe2x80x9cdetourxe2x80x9d around the broken link.
The present invention provides for automatic, programmed, and/or manual switch configuration of a switch for front-plane or back-plane use. This prevents superfluous protocol packets from being generated that would reduce network bandwidth and could disrupt activity in a network that is not implementing a virtual-chassis topology. Alternatively, some non-disruptive superfluous protocol packets can be tolerated. However, the database-concordance packets would be disruptive in the context of symmetric trunking so that some kind of topology specific mode selection is required. To the end of automating this mode selection, a switch can distinguish symmetric trunking from asymmetric trunking according to the number of different IP switch addresses received.
The present invention allows a user to buy a single switch to implement a network with the confidence that that switch can be supplemented with other similar switches to meet network growth requirements. Thus, the user can avoid the expense of starting with a physical chassis switch from the beginning. Furthermore, while a physical chassis switch limits the distance between segments to two cable lengths, the virtual-chassis topology allows distances between segments of four cable lengths.
The invention provides the bandwidth advantages of symmetric trunking, but straightforwardly maintains latencies within network limits (since packets traverse a maximum of three switches in the virtual chassis). In contrast to the star topology, bandwidth can be increased with only a modest cost in available port count. A serendipitous benefit is fault tolerance: loss of a back-plane switch affects only bandwidth, while loss of a front plane switch decouples only the segments directly coupled to it from the rest of the network. These and other features and advantages of the present invention are detailed below with reference to the following figures.